Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing.plaf.basic
Class BasicSpinnerUI

    java.lang.Object
      |
      +--javax.swing.plaf.ComponentUI
            |
            +--javax.swing.plaf.SpinnerUI
                  |
                  +--javax.swing.plaf.basic.BasicSpinnerUI

public class BasicSpinnerUI
extends SpinnerUI

The default Spinner UI delegate.

Since:
  1.4

Field Summary
`protected JSpinner` | `spinner` The spinner that we're a UI delegate for.

Constructor Summary
`BasicSpinnerUI()`

Method Summary
`protected JComponent` | `createEditor()` This method is called by installUI to get the editor component of the `JSpinner`.
`protected LayoutManager` | `createLayout()` Create a `LayoutManager` that manages the `editor`, `nextButton`, and `previousButton` children of the JSpinner.
`protected Component` | `createNextButton()` Create a component that will replace the spinner models value with the object returned by `spinner.getNextValue`.
`protected Component` | `createPreviousButton()` Create a component that will replace the spinner models value with the object returned by `spinner.getPreviousValue`.
`protected PropertyChangeListener` | `createPropertyChangeListener()` Create a `PropertyChangeListener` that can be added to the JSpinner itself.
`static ComponentUI` | `createUI(JComponent c)` Returns a new instance of BasicSpinnerUI.
`protected void` | `installDefaults()` Initialize the `JSpinner` `border`, `foreground`, and `background`, properties based on the corresponding "Spinner.*" properties from defaults table.
`protected void` | `installListeners()` Initializes `propertyChangeListener` with a shared object that delegates interesting PropertyChangeEvents to protected methods.
`void` | `installUI(JComponent c)` Calls `installDefaults`, `installListeners`, and then adds the components returned by `createNextButton`, `createPreviousButton`, and `createEditor`.
`protected void` | `replaceEditor(JComponent oldEditor, JComponent newEditor)` Called by the `PropertyChangeListener` when the `JSpinner` editor property changes.
`protected void` | `uninstallDefaults()` Sets the `JSpinner's` layout manager to null.
`protected void` | `uninstallListeners()` Removes the `propertyChangeListener` added by installListeners.
`void` | `uninstallUI(JComponent c)` Calls `uninstallDefaults`, `uninstallListeners`, and then removes all of the spinners children.

Methods inherited from class javax.swing.plaf.ComponentUI
`contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, paint, update`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### spinner

    protected JSpinner spinner

  The spinner that we're a UI delegate for. Initialized by the `installUI` method, and reset to null by `uninstallUI`.

  See Also:
    `installUI(javax.swing.JComponent)`, `uninstallUI(javax.swing.JComponent)`

Constructor Detail

### BasicSpinnerUI

    public BasicSpinnerUI()

Method Detail

### createUI

    public static ComponentUI createUI(JComponent c)

  Returns a new instance of BasicSpinnerUI. SpinnerListUI delegates are allocated one per JSpinner.

  Parameters:
    `c` - the JSpinner (not used)
  Returns:
    a new BasicSpinnerUI object
  See Also:
    `ComponentUI.createUI(javax.swing.JComponent)`

### installUI

    public void installUI(JComponent c)

  Calls `installDefaults`, `installListeners`, and then adds the components returned by `createNextButton`, `createPreviousButton`, and `createEditor`.

  Overrides:
    `installUI` in class `ComponentUI`
  Parameters:
    `c` - the JSpinner
  See Also:
    `installDefaults()`, `installListeners()`, `createNextButton()`, `createPreviousButton()`, `createEditor()`

### uninstallUI

    public void uninstallUI(JComponent c)

  Calls `uninstallDefaults`, `uninstallListeners`, and then removes all of the spinners children.

  Overrides:
    `uninstallUI` in class `ComponentUI`
  Parameters:
    `c` - the JSpinner (not used)
  See Also:
    `ComponentUI.installUI(javax.swing.JComponent)`, `JComponent.updateUI()`

### installListeners

    protected void installListeners()

  Initializes `propertyChangeListener` with a shared object that delegates interesting PropertyChangeEvents to protected methods.

  This method is called by `installUI`.

  See Also:
    `replaceEditor(javax.swing.JComponent, javax.swing.JComponent)`, `uninstallListeners()`

### uninstallListeners

    protected void uninstallListeners()

  Removes the `propertyChangeListener` added by installListeners.

  This method is called by `uninstallUI`.

  See Also:
    `installListeners()`

### installDefaults

    protected void installDefaults()

  Initialize the `JSpinner` `border`, `foreground`, and `background`, properties based on the corresponding "Spinner.*" properties from defaults table. The `JSpinners` layout is set to the value returned by `createLayout`. This method is called by `installUI`.

  See Also:
    `uninstallDefaults()`, `installUI(javax.swing.JComponent)`, `createLayout()`, `LookAndFeel.installBorder(javax.swing.JComponent, java.lang.String)`, `LookAndFeel.installColors(javax.swing.JComponent, java.lang.String, java.lang.String)`

### uninstallDefaults

    protected void uninstallDefaults()

  Sets the `JSpinner's` layout manager to null. This method is called by `uninstallUI`.

  See Also:
    `installDefaults()`, `uninstallUI(javax.swing.JComponent)`

### createLayout

    protected LayoutManager createLayout()

  Create a `LayoutManager` that manages the `editor`, `nextButton`, and `previousButton` children of the JSpinner. These three children must be added with a constraint that identifies their role: "Editor", "Next", and "Previous". The default layout manager can handle the absence of any of these children.

  Returns:
    a LayoutManager for the editor, next button, and previous button.
  See Also:
    `createNextButton()`, `createPreviousButton()`, `createEditor()`

### createPropertyChangeListener

    protected PropertyChangeListener createPropertyChangeListener()

  Create a `PropertyChangeListener` that can be added to the JSpinner itself. Typically, this listener will call replaceEditor when the "editor" property changes, since it's the `SpinnerUI's` responsibility to add the editor to the JSpinner (and remove the old one). This method is called by `installListeners`.

  Returns:
    A PropertyChangeListener for the JSpinner itself
  See Also:
    `installListeners()`

### createPreviousButton

    protected Component createPreviousButton()

  Create a component that will replace the spinner models value with the object returned by `spinner.getPreviousValue`. By default the `previousButton` is a JButton who's `ActionListener` updates it's `JSpinner` ancestors model. If a previousButton isn't needed (in a subclass) then override this method to return null.

  Returns:
    a component that will replace the spinners model with the next value in the sequence, or null
  See Also:
    `installUI(javax.swing.JComponent)`, `createNextButton()`

### createNextButton

    protected Component createNextButton()

  Create a component that will replace the spinner models value with the object returned by `spinner.getNextValue`. By default the `nextButton` is a JButton who's `ActionListener` updates it's `JSpinner` ancestors model. If a nextButton isn't needed (in a subclass) then override this method to return null.

  Returns:
    a component that will replace the spinners model with the next value in the sequence, or null
  See Also:
    `installUI(javax.swing.JComponent)`, `createPreviousButton()`

### createEditor

    protected JComponent createEditor()

  This method is called by installUI to get the editor component of the `JSpinner`. By default it just returns `JSpinner.getEditor()`. Subclasses can override `createEditor` to return a component that contains the spinner's editor or null, if they're going to handle adding the editor to the `JSpinner` in an `installUI` override.

  Typically this method would be overridden to wrap the editor with a container with a custom border, since one can't assume that the editors border can be set directly.

  The `replaceEditor` method is called when the spinners editor is changed with `JSpinner.setEditor`. If you've overriden this method, then you'll probably want to override `replaceEditor` as well.

  Returns:
    the JSpinners editor JComponent, spinner.getEditor() by default
  See Also:
    `installUI(javax.swing.JComponent)`, `replaceEditor(javax.swing.JComponent, javax.swing.JComponent)`, `JSpinner.getEditor()`

### replaceEditor

    protected void replaceEditor(JComponent oldEditor,
                                 JComponent newEditor)

  Called by the `PropertyChangeListener` when the `JSpinner` editor property changes. It's the responsibility of this method to remove the old editor and add the new one. By default this operation is just:

       spinner.remove(oldEditor);
       spinner.add(newEditor, "Editor");

  The implementation of `replaceEditor` should be coordinated with the `createEditor` method.

  See Also:
    `createEditor()`, `createPropertyChangeListener()`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.